package com.reebake.ideal.org.entity;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

 /**
 * 组织
 * 
 */
@Schema(name = "组织", description = "")
@TableName("idl_organization")
@Data
public class Organization implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Schema(name = "主键", description = "")
    @TableId
    private String organizationId;

    /** 组织代码 */
    @Schema(name = "组织代码", description = "")
    private String organizationCode;

    /** 组织名称 */
    @Schema(name = "组织名称", description = "")
    private String organizationName;

    /** 简称 */
    @Schema(name = "简称", description = "")
    private String shortName;

    /** 英文名 */
    @Schema(name = "英文名", description = "")
    private String englishName;

    /** 英文简称 */
    @Schema(name = "英文简称", description = "")
    private String englishShortName;

    /** 组织类型 */
    @Schema(name = "组织类型", description = "")
    private String organizationType;

    /** 证件类型 */
    @Schema(name = "证件类型", description = "")
    private String organizationIdType;

    /** 证件代码 */
    @Schema(name = "证件代码", description = "")
    private String organizationIdCode;

    /** 上级编号 */
    @Schema(name = "上级编号", description = "")
    private String parentId;

    /** 上级名称 */
    @Schema(name = "上级名称", description = "")
    private String parentName;

    /** 层级 */
    @Schema(name = "层级", description = "")
    private String level;

    /** logo */
    @Schema(name = "logo", description = "")
    private String logo;

    /** 口号 */
    @Schema(name = "口号", description = "")
    private String slogan;

    /** 状态 */
    @Schema(name = "状态", description = "")
    private String status;

    /** 行业 */
    @Schema(name = "行业", description = "")
    private String industry;

    /** 国家 */
    @Schema(name = "国家", description = "")
    private String country;

    /** 城市编号 */
    @Schema(name = "城市编号", description = "")
    private String city;

    /** 地址 */
    @Schema(name = "地址", description = "")
    private String address;

    /** 法人代表 */
    @Schema(name = "法人代表", description = "")
    private String legalRepresentative;

    /** 注册资本 */
    @Schema(name = "注册资本", description = "")
    private String registeredCapital;

    /** 成立日期 */
    @Schema(name = "成立日期", description = "")
    private String establishedDate;

    /** 开始营业日起 */
    @Schema(name = "开始营业日起", description = "")
    private String operationStartDate;

    /** 证照到期日起 */
    @Schema(name = "证照到期日起", description = "")
    private String expiryDate;

    /** 电话 */
    @Schema(name = "电话", description = "")
    private String phone;

    /** 电子邮箱 */
    @Schema(name = "电子邮箱", description = "")
    private String email;

    /** 联系人 */
    @Schema(name = "联系人", description = "")
    private String contactPerson;

    /** 备注 */
    @Schema(name = "备注", description = "")
    private String remark;

    /** 删除标识 */
    @Schema(name = "删除标识", description = "")
    @TableLogic
    private Boolean deleteFlag;

    /** 租户号 */
    @Schema(name = "租户号", description = "")
    private String tenantId;

    /** 乐观锁 */
    @Schema(name = "乐观锁", description = "")
    private Integer revision;

    /** 创建人 */
    @Schema(name = "创建人", description = "")
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @Schema(name = "创建时间", description = "")
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;

    /** 更新人 */
    @Schema(name = "更新人", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @Schema(name = "更新时间", description = "")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;

}